#include <stdio.h>
#include <stdlib.h>

//二叉查找树的操作：创建
#include "07_bst_lib.h"

//1. 测试 创建二叉查找树的方法：递归法
void test1(){
    struct TreeNode* root=NULL;

    root=insert(root, 20);
    root=insert(root, 152);
    root=insert(root, 12);
    root=insert(root, 5);
    root=insert(root, 39);

    // 打印结果
    printTree(root, 0, "");
    inOrder(root);
    printf("\n");

    // 释放内存
    freeTree(root);
}

void test1B(){
    struct TreeNode* root=NULL;

    // 用户输入数据: 5 3 7 2 4 6 8 /
    printf("Pls input some int, end with /\n");
    int num;
    while (scanf("%d", &num) == 1 ){
        root = insert(root, num);
    }

    // 打印结果
    printTree(root, 0, "");
    inOrder(root);
    printf("\n");

    // 释放内存
    freeTree(root);
}


//1B. 测试 创建二叉查找树的方法：迭代法
void test2B(){
    struct TreeNode* root=NULL;

    // 用户输入数据: 5 3 7 2 4 6 8 /
    printf("Pls input some int, end with /\n");
    int num;
    while (scanf("%d", &num) == 1 ){
        root = insert2(root, num);
    }

    // 打印结果
    printTree(root, 0, "");
    inOrder(root);
    printf("\n");

    // 释放内存
    freeTree(root);
}



int main(){
    //创建树的测试
    //test1(); //插入 固定数据
    test1B(); //插入 用户输入数据
    //test2B(); //插入 用户输入数据 50 30 20 40 70 60 80 /

    return 0;
}
